<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
    <meta name="viewport" content="width=device-width">
    <title>构造继承</title>
</head>
<body>
    <h1>构造继承</h1>
   
</body>
<script type="text/javascript">
    
    /*
    function Cat(name,age){
        this.name = name;
        this.age = age;
    }

    const cat = new Cat('Susan',20)
    console.log(cat)
    */
    
    function Parent () {
        this.names = ['kevin', 'daisy'];
    }
    
    function Child () {
        Parent.call(this);
    }
    

    var child1 = new Child();
    child1.names.push('yayu');
    console.log(child1)
    console.log(child1.names); // ["kevin", "daisy", "yayu"]
    

    var child2 = new Child();
    console.log(child1)
    console.log(child2.names); // ["kevin", "daisy"]


    // 特点：
    // 1.避免了引用类型的属性被所有实例共享
    // 2.可以在 Child 中向 Parent 传参
    // 3.可以实现多继承（call多个父类对象）

    // 缺点：
    // 方法都在构造函数中定义，每次创建实例都会创建一遍方法。
    //无法继承原型的属性和方法

</script>
</html>